4 research outputs found

    Enhanced JavaScript learning using code quality tools and a rule-based system in the FLIP Exploratory Learning Environment

    Get PDF
    The ‘FLIP Learning’ (Flexible, Intelligent and Personalised Learning) is an Exploratory Learning Environment (ELE) for teaching elementary programming to beginners using JavaScript. This paper presents the subsystem that is used to generate individualised real-time support to students depending on their initial misconceptions. The subsystem is intended to be used primarily in the early stages of student engagement in order to help them overcome the constraints of their Zone of Proximal Development (ZPD) with minimal assistance from teachers

    Scalable monitoring of student interaction indicators in exploratory learning environments

    Get PDF
    We present and evaluate a web-based architecture for monitoring student-system interaction indicators in Exploratory Learning Environments (ELEs), using as our case study a microworld for secondary school algebra. We discuss the challenging role of teachers in exploratory learning settings and motivate the need for visualisation and notification tools that can assist teachers in focusing their attention across the class and inform teachers' interventions. We present an architecture that can support such Teacher Assistance tools and demonstrate its scalability to allow concurrent usage by thousands of users (students and teachers)

    Simplifying authoring and facilitating component reuse of programming tutors

    Get PDF
    Learning programming is very hard, especially during the early stages. Programming is an exploratory activity and therefore it is more natural to learn it through exploration. Freedom and lack of structure in exploratory learning offer more opportunities for experimentation and discovery of knowledge but at the same time that requires substantial support. For the same reasons provision of support is more challenging and costly in this context. Typical traditional intelligent tutoring systems are highly controllable environments that offer guided learning. Modern environments are more open and exploratory but they lack intelligence and adaptability. There is an emerging need for systems that are both exploratory and intelligent but authoring them is a very challenging task. The intention of this thesis is not to offer a new exploratory and intelligent learning platform that teaches programming more effectively but to provide the architectural framework, techniques and tools that can be used to develop intelligent tutors for exploratory learning with ease. This thesis is concerned with both task-dependent and task-independent intelligent support. The latter is expected in systems that offer free exploration or in situations where students work with ill-defined problems and define their own tasks dynamically. In these situations there is no explicit knowledge in the system about task-specific objectives. This thesis presents a process used to identify common student misconceptions for early programming and transform them into task-independent intelligent support. It also presents a novel methodology that can be used to lower the cognitive load and entry threshold for prospective authors of task-dependent support. Designing and developing support is not enough if the tutors cannot take advantage of the various learning environments available and combine them with intelligent support components. For this reason, this thesis presents a novel approach that simplifies the integration and interoperability of diverse and heterogeneous components so that authors can synthesise dynamic learning environments with minimal overhead. Having the components and being able to integrate them may be problematic if there is no understanding of the system as a whole. An overview of what is needed to foster intelligent support for programming is given in an architectural framework that shows how the various components are logically interrelated with each other and shows how they should be combined together in an incremental manner. Finally, a tool to facilitate reusability of existing functionality is presented. This tool can be used to define new and existing languages that can be used in the context of learning platforms either to simplify authoring of support or to enable teaching programming through manipulation of existing learning environments. The outcomes of this research are materialised in a proof of concept that show show all the components presented in the text can be combined together to simplify authoring of intelligent support and facilitate reusability of functionality
    corecore